In the computer industry, customers would like to know which components of hardware, firmware, software, etc. will work well together. Accordingly, most vendors test and certify the compatibility of their products. For example, independent software vendors (ISVs) and independent hardware vendors (IHVs) will certify which of their specific products are compatible with a particular version of an operating system or version of software. Typically, the certification process involves running a suite of tests on one or more computer systems that include the product to be certified.
Unfortunately, the variety of configuration options of computing equipment and software has increased tremendously. There is now a wide range of options in processors, chipsets, peripherals, storage devices, device drivers available for use in computer systems. This results in a virtually endless range of possible configurations for computer systems and its software. In addition, the available options for computer systems are constantly changing as products are updated or as new products are released. Thus, most vendors can only test their products in a limited number of configurations, which do not account for all of the available options. This increases the risk that a product will not work in a particular system, even though it has been certified.
For example, as operating systems are updated, the libraries and interfaces to the operating system may change. This ultimately affects the compatibility of application programs that rely on the operating system. Typically, developers have had to conduct extensive testing and adjust their application programs after the fact. This can be a difficult and time consuming task.
Accordingly, it may be desirable to provide methods and systems for efficiently testing and certifying the compatibility of products.